function Check-RDPEnabled {
    $rdpKey = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server"
    $fDenyTSConnections = Get-ItemProperty -Path $rdpKey -Name "fDenyTSConnections" 

    if ($fDenyTSConnections -ne $null -and ($fDenyTSConnections.fDenyTSConnections -ne 0) ) {
	Set-ItemProperty -Path $rdpKey -Name "fDenyTSConnections" -Value 0
        Write-Host "RDP has been enabled."
    }
}

function Validate-RDPPort {
    $rdpPortKey = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
    $portNumber = Get-ItemProperty -Path $rdpPortKey -Name "PortNumber" -ErrorAction SilentlyContinue
    if ($portNumber -ne $null -and ($portNumber.PortNumber -ne 3389)) {
     Set-ItemProperty -Path $rdpPortKey -Name "PortNumber" -Value 3389
     Write-Host "RDP port has been reset to 3389."

     Restart-Service -Name TermService -Force -ErrorAction Stop
     Write-Host "Service TermService has been restarted."
    } 
}

function Check-RDPServices {
    $serviceStatus = Get-Service -Name TermService -ErrorAction SilentlyContinue
    if ($serviceStatus -ne $null -and ($serviceStatus.Status -ne 'Running')) {
           Start-Service -Name TermService
    } 

    
    $serviceStatus = Get-Service -Name UmRdpService -ErrorAction SilentlyContinue
    if ($serviceStatus -ne $null -and ($serviceStatus.Status -ne 'Running')) {
             Start-Service -Name UmRdpService
             Write-Host "Service $service has been started."
    }
}

Check-RDPEnabled
Validate-RDPPort
Check-RDPServices